The present invention generally relates to data communications and more specifically to a system and method for providing reliable call progress messaging between devices.
Protocols are provided that define how telephonic devices can communicate between each other. For example, session initiation protocol (SIP) defines the standards that Internet Protocol (IP) based telephones use in order to enable a telephone call. In the SIP protocol, telephones, or devices related to the telephones (e.g., switches, servers, etc.), send messages to each other in a request and answer sequence. In a typical call progress sequence, a first phone will repeatedly send an invite request to a second phone. The invite request is a request to start a conversation. The second device then sends a trying response to the first device when the invite request is received. Once receiving the trying response, the first telephone stops sending the invite request. Accordingly, the SIP protocol is defined so that the first telephone will repeatedly send an invite request until a trying response is received from the second telephone.
After the trying response is sent by the second device, a ringing response is sent when the second telephone starts ringing. The effect of receiving a ringing response at the first device causes the first device to produce a ringing sound at the first device. This alerts the user at the first device that the second device is ringing. The SIP protocol calls for the ringing response to be only sent once. When the second device is activated or picked up by a user, a success response is then sent that indicates that the phone has been picked up. The users of the first and second telephone can now communicate.
The above method has many disadvantages. For example, messages may be lost and not received by a device because the messaging environment that the SIP devices operate in is not reliable. Thus, for example, the ringing response may be lost thereby causing the user to not hear that the second device is ringing. Instead, the user just hears silence and may not know the proper call progress. This problem is exacerbated in the case where the communication is between a SIP telephone and a public switch telephone network (PSTN) telephone. Because of the differences between the SIP protocol that a SIP phone uses and a PSTN protocol that a PSTN phone uses, an audio inband response was created. The audio inband response is provided to allow PSTN telephones to be compatible with and communicate with SIP telephones. The audio inband response includes actual audio information (e.g., ringing sounds, busy sounds, off hook sounds, etc.) from the PSTN phone and the audio information is produced at the first device. In contrast, when two SIP devices communicate, the ringing response is sent from the second device to the first device and then the ringing sound is generated at the first device. Thus, SIP devices do not send audio information. The audio inband response, however, includes actual audio information that is generated at the PSTN device. Thus, the audio information may include ringing but may also include other types of audio such as a busy signal or audio typically heard when the call cannot be completed. Consequently, losing an inband audio response that indicates that the second telephone is busy or cannot be connected may cause a user to needlessly stay on the line when there is no chance that the second device will ever be picked up. In either of the above cases, however, a user of the first device may not receive the proper call progress indications because messages are lost.